#! /bin/sh
#
# configure
#
# $Id: //poco/1.4/dist/configure#2 $
#
# Configuration script for POCO.
#
# Invoke configure --help for help.
#

showhelp()
{
cat << ENDHELP 
usage: configure {options}
Configure the POCO C++ Libraries.

Options:
  --help
    Display this help screen.

  --config=<config_name>
    Use the given build configuration.
    Available configurations are:

`ls -C $base/build/config/`

  --prefix=<install_prefix>
    Use the given install directory for make install.
    Default is /usr/local.

  --include-path=<path>
    Add search path for header files.

  --library-path=<path>
    Add search path for library files.

  --cflags=<flags>
    Pass additional flags to compiler.
    Example: --cflags=-wall

  --static
    Build static libraries. Overrides default mode, which
    depends upon target. Can be specified together
    with --shared to build both.

  --shared
    Build shared libraries. Overrides default mode, which
    depends upon target. Can be specified together
    with --static to build both.
	
  --no-tests
    Do not build testsuites.

  --no-samples
    Do not build samples.

  --no-ipv6
    Compile with -DPOCO_NET_NO_IPv6.
    For systems that don't support IPv6.

ENDHELP
}

# save cwd
build=`pwd`
# get directory where we are located
cd `dirname $0`
base=`pwd`
cd $build

#暂时没有实现sample,tests，暂时只实现了编译
tests=1
samples=1
flags=""
includepath=""
librarypath=""
static=""
shared=""

# parse arguments
while [ $# -ge 1 ]; do
	case "$1" in
	--config=*)
		config="`echo ${1} | awk '{print substr($0,10)}'`" ;;

	--prefix=*)
		prefix="`echo ${1} | awk '{print substr($0,10)}'`" ;;

	--include-path=*)
		includepath="`echo ${1} | awk '{print substr($0,16)}' | tr ',;' '  '`" ;;

	--library-path=*)
		librarypath="`echo ${1} | awk '{print substr($0,16)}' | tr ',;' '  '`" ;;

	--cflags=*)
		flags="`echo ${1} | awk '{print substr($0,10)}'`" ;;

	--static)
		static="1" ;;

	--shared)
		shared="1" ;;
		
	--no-samples)
		samples="" ;;

	--no-tests)
		tests="" ;;

	--no-ipv6)
		flags="$flags -DPOCO_NET_NO_IPv6" ;;	

	--help)
 		showhelp
 		exit 0
		;;

	*)
		showhelp
		exit 1
		;;
	esac

 	shift
done


if [ "$config" = "" ] ; then
 	config=`uname`
fi

if [ ! -f "$base/build/config/$config" ] ; then
	echo "Unknown configuration: $config"
	echo "Please use the --config option to specify another build configuration"
	echo "The following configurations are available:"
	ls $base/build/config
	exit 1
fi


if [ -z "$prefix" ] ; then
	prefix=/usr/local
fi

# copy Makefile to build dir
if [ "$base" != "$build" ] ; then
	cp $base/Makefile $build
fi

if [ -n "$static" -a -n "$shared" ] ; then
	linkmode=BOTH
elif [ -n "$static" ] ; then
	linkmode=STATIC
elif [ -n "$shared" ] ; then
	linkmode=SHARED
else
	linkmode=""
fi

# create config.make
echo '# config.make generated by configure script' >$build/config.make
echo "POCO_CONFIG = $config" >>$build/config.make
echo "POCO_BASE = $base" >>$build/config.make
echo "POCO_BUILD = $build" >>$build/config.make
echo "POCO_PREFIX = $prefix" >>$build/config.make
echo "POCO_FLAGS = $flags" >>$build/config.make
#echo "OMIT = $omit" >>$build/config.make

if [ -n "$includepath" ] ; then
	echo "POCO_ADD_INCLUDE = $includepath" >>$build/config.make
fi

if [ -n "$librarypath" ] ; then
	echo "POCO_ADD_LIBRARY = $librarypath" >>$build/config.make
fi

if [ -n "$linkmode" ] ; then
	echo "LINKMODE = $linkmode" >>$build/config.make
fi

cat <<__EOF__ >>$build/config.make
export POCO_CONFIG
export POCO_BASE
export POCO_BUILD
export POCO_PREFIX
export POCO_FLAGS
__EOF__

























